/*******************************************************************************
* Project: QSAR(Cute Software Architecture) 
*
* Copyright: Copyright(C) 2024 by YuetingBen, All Rights Reserved
*
* File name: RtosRte.h
*
* Brief: ;
*
* Author: Yueting.Ben
*
* Module: RTOS
*
*******************************************************************************/

#ifndef RTOSRTE_H
#define RTOSRTE_H

/** HEADER FILES **/
#include "DcmType.h"
#include "NvmType.h"
#include "DemType.h"
#include "CanNmType.h"
#include "CanNmCfg.h"
#include "CanSM.h"
#include "CanSMCfg.h"
#include "CanTpCfg.h"
#include "XcpCfg.h"
#include "AppDiagCfg.h"
#include "TmCfg.h"


/** GLOBAL DATA DECLARATION **/
extern const NvM_ConfigType NvMConfig;
extern const Dem_ConfigType Dem_Config;
extern const CanNm_ConfigType CanNm_Config;
extern const CanSM_ConfigType CanSM_Config;
extern const CanTp_ConfigType CanTp_Config ;

/** GLOBAL FUNCTION DECLARATION **/
extern BufReq_ReturnType Dcm_Init(void);

extern void NvM_Init(
    const NvM_ConfigType* ConfigPtr
);

extern void Dem_Init(
    const Dem_ConfigType* ConfigPtr
);

extern void CanTp_Init(
    const CanTp_ConfigType* ConfigPtr
);

extern void CanNm_Init(
    const CanNm_ConfigType* cannmConfigPtr
);

extern void CanSM_Init(
    const CanSM_ConfigType* ConfigPtr
);

extern void Tm_Init(
    const Tm_ConfigType* ConfigPtr
);

extern void Xcp_Init(
    const Xcp_ConfigType* Xcp_ConfigPtr 
);


extern void CanTp_MainFunction (void);
extern void DcmDsl_MainFunction(void);

extern void Can_MainFunction(
    void
);

extern void NvM_MainFunction(
    void
);

extern void Com_MainFunctionTx(
    void
);

extern void Com_MainFunctionRx(
    void
);

extern void Dem_MainFunction(
    void
);

extern void AppCom_MainFunction(
    void
);

extern void AppTest_MainFunction(
    void
);

extern void CanNm_MainFunction(
    void
);

extern void Tm_MainFunction_Cyclic_1ms(
    void
);

extern void Xcp_MainFunction( 
    void 
);


#endif
